Dockerfile 使用.dockerignore 文件
1 背景知识
通过配置 .dockerignore 文件让Docker排除不需要上传到docker 服务端的文件或目录。
2 .dockerignore 文件的好处
- 构建镜像时避免不需要的大文件上传到服务端,从而加快构建速度,减少网络带宽。
- 避免构建极限时将一些敏感文件打包到镜像中,从而提高docker镜像的安全性。
3 dockerignore 文件的编写方法
- 每行一个条目;
- 以
#开头的行为注释; - 空行被忽略。
- 构建上下文环境作为根目录。
3.1 文件匹配规则语法:
| 符号 | 作用 |
|---|---|
| # | 注释 |
| * | 匹配0或多个的字符。 |
| ? | 匹配1个字符 |
| ** | 匹配0个或多个目录 |
| ! | 不匹配某些字符或目录 |
3.2 匹配示例
| 规则 | 行为 |
|---|---|
| */temp* | 匹配根路径下一级目录下所有以temp开头的文件或目录。 |
| */*/temp* | 匹配根路径下两级目录下的所有以temp开头的文件或目录。 |
| temp? | 匹配根路径下以temp开头,任意一个字符结尾的文件或目录。 |
| **/*.go | 匹配所有路径下以 .go 结尾的文件或目录,即递归搜索所有路径。 |
| *.md !README.md |
匹配根路径下所有以 .md 结尾的文件或目录,但README.md除外。 |
4 dockerignore 使用案例
- 除
README.md以外,所有其他的md文件都被docker忽略。
*.md
!README.md
- 将根路径下所有以
.md结尾的文件排除,以README开头.md结尾的文件保留,但是README-secret.md文件排除。
*.md
README-secret.md
!README*.md
- git 工程下的
dockerignore文件配置。
.git
_mockData
deleted
email-templates
script
static